package com.apes.framework.util.monitor.druid.sql;

import com.apes.framework.util.DateUtil;
import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;

@Data
@Document(indexName = "logs-sql_stat", replicas = 0)
public class SqlStat {

    @Id
    private String id;

    /**
     * 创建时间
     **/
    @Field(type = FieldType.Date)
    private String createdOn = DateUtil.format("yyyy-MM-dd'T'HH:mm:ss.SSS") + "+0800";

    /**
     * 更新时间
     **/
    @Field(type = FieldType.Date)
    private String endedOn = DateUtil.format("yyyy-MM-dd'T'HH:mm:ss.SSS") + "+0800";

    /**
     * sql
     **/
    private String sql;

    /**
     * 执行数
     **/
    private long executeCount;

    /**
     * 执行时间
     **/
    private long executeTimeMillis;

    /**
     * 最慢执行时间
     **/
    private long maxTimespan;

    /**
     * 事务执行数
     **/
    private long txn;

    /**
     * 错误数
     **/
    private long errorCount;

    /**
     * 更新行数
     **/
    private long updateCount;

    /**
     * 读取行数
     **/
    private long fetchRowCount;

    /**
     * 执行中
     **/
    private long runningCount;

    /**
     * 最大并发
     **/
    private long concurrentMax;


    /**
     * 执行时间分布
     **/
    private long[] executeHistogram;


    /**
     * 执行+RS时分布
     **/
    protected long[] executeAndResultHoldHistogram;

    /**
     * 读取行分布
     **/
    protected long[] fetchRowHistogram;

    /**
     * 更新行分布
     **/
    protected long[] updateHistogram;


}
